/***************************************************************************
*	Author:		Wesley Maxey
*	Filename:	Acceleration.h
*	Purpose:	Provide a simple method of giving acceleration per update
***************************************************************************/

#ifndef ACCEL_H
#define ACCEL_H

class Acceleration {
private:
	float	m_accel;
	float	m_change;
	int		m_stepping;

public:
	Acceleration();							//Default constructor
	Acceleration( float );					//Base Acceleration
	Acceleration( float, float );			//Acceleration + a constant change
	Acceleration( float, float, int );		//Acceleration + a constant change + a stepping
	Acceleration( const Acceleration & );
	const Acceleration & operator=( const Acceleration & );
	~Acceleration() {}
	
	void SetAccel( float );					//Set constant acceleration
	void SetChange( float );				//Set change for acceleration
	void SetStepping( int );				//Set stepping for how much change is applied to acceleration each tick

	float GetAccel()	{return m_accel;}
	float GetChange()	{return m_change;}
	int GetStepping()	{return m_stepping;}

	float Tick();							//Update and return a value
};

#endif //VELOCITY_H